home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / MOWHIP.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1997-01-29  |  10.7 KB  |  349 lines

  1. 10  'MOWHIP - mobile whip antenna - 13 JAN 94 rev. 05 JAN 97
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  PROG$="mowhip"
  4. 40  COMMON EX$,PROG$,U,UH
  5. 50  CLS:KEY OFF
  6. 60  COLOR 7,0,1
  7. 70  DIM S(9,7)  'single element data
  8. 80  DIM D(9,8)  'double element data
  9. 90  UL$=STRING$(80,205)
  10. 100  U1$="#####.##"
  11. 110  U2$="#####.###"
  12. 120  U3$="#####.####"
  13. 130  A$=STRING$(7,32)
  14. 140  B$=STRING$(19,".")
  15. 150  C$=STRING$(80,32)
  16. 160  PI=3.14159
  17. 170  GOTO 230
  18. 180  '
  19. 190  '.....erase line
  20. 200  LOCATE CSRLIN-1:PRINT C$;:LOCATE CSRLIN-1
  21. 210  RETURN
  22. 220  '
  23. 230  '.....start
  24. 240  CLS:F=0
  25. 250  COLOR 15,2
  26. 260  PRINT " MOBILE/MARITIME HF WHIP ANTENNAS";
  27. 270  PRINT TAB(57);"by George Murphy VE3ERP ";
  28. 280  COLOR 1,0:PRINT STRING$(80,223);
  29. 290  COLOR 7,0
  30. 300  X=17:LOCATE 3:GOSUB 560
  31. 310  X=42:LOCATE 3:GOSUB 430
  32. 320  PRINT UL$;
  33. 330  GOSUB 3120   'preface
  34. 340  COLOR 0,7:LOCATE 25,22
  35. 350  PRINT " Press 1 to continue or 0 to EXIT.... ";
  36. 360  COLOR 7,0
  37. 370  Z$=INKEY$:IF Z$=""THEN 370
  38. 380  IF Z$="0"THEN CLS:RUN EX$
  39. 390  IF Z$="1"THEN 690
  40. 400  GOTO 370
  41. 410  '
  42. 420  '.....diagrams
  43. 430  COLOR 0,7
  44. 440  LOCATE ,X:PRINT "     DOUBLE ELEMENT    "
  45. 450  LOCATE ,X:PRINT "  VARPTRDEFDBL SPC(                 "
  46. 460  LOCATE ,X:PRINT "  H2 OPENDEFSNGSOUNDupper element  "
  47. 470  LOCATE ,X:PRINT "  CLSDEFDBLVARPTRUSRCOLORDEFSNGSOUNDloading coil  "
  48. 480  LOCATE ,X:PRINT "  VARPTRDEFDBLCLSSPC('                "
  49. 490  LOCATE ,X:PRINT "  H1 OPENDEFSNGSOUNDlower element  "
  50. 500  LOCATE ,X:PRINT "  CLSDEFDBL USRSOUND DEFSNGCOLORfeed         "
  51. 510  LOCATE ,X:PRINT "     VARPTRSOUND DEFSNG'point        "
  52. 520  LOCATE ,X:PRINT "    \MOTOR\DEFSNGSOUNDvehicle body  "
  53. 530  COLOR 7,0
  54. 540  RETURN
  55. 550  '
  56. 560  COLOR 0,7
  57. 570  LOCATE ,X:PRINT "     SINGLE ELEMENT    "
  58. 580  LOCATE ,X:PRINT "  VARPTRDEFDBL SPC(                 "
  59. 590  LOCATE ,X:PRINT "  CALL  OPEN                 "
  60. 600  LOCATE ,X:PRINT "  H1 OPENDEFSNGSOUNDsingle element "
  61. 610  LOCATE ,X:PRINT "  CALL  OPEN                 "
  62. 620  LOCATE ,X:PRINT "  CLSDEFDBLVARPTRUSRCOLORDEFSNGSOUNDloading coil  "
  63. 630  LOCATE ,X:PRINT "    CLSSOUNDMOTOR DEFSNGCOLORfeed         "
  64. 640  LOCATE ,X:PRINT "     VARPTRSOUND DEFSNG'point        "
  65. 650  LOCATE ,X:PRINT "    \MOTOR\DEFSNGSOUNDvehicle body  "
  66. 660  COLOR 7,0
  67. 670  RETURN
  68. 680  '
  69. 690  '.....input data
  70. 700  VIEW PRINT 13 TO 24:CLS:VIEW PRINT:LOCATE 13
  71. 710  PRINT " Do you want to input data in (c)entimetres or (i)nches?     (c/i)"
  72. 720  Z$=INKEY$:IF Z$=""THEN 720
  73. 730  IF Z$="c"THEN UM$="cm.":UM=2.54:GOTO 770
  74. 740  IF Z$="i"THEN UM$="in.":UM=1:GOTO 770
  75. 750  GOTO 720
  76. 760  '
  77. 770  GOSUB 190
  78. 780  PRINT " Do you want to design a (s)ingle or (d)ouble element whip?  (s/d)"
  79. 790  I$=INKEY$:IF I$=""THEN 790
  80. 800  IF I$="s"OR I$="d"THEN X=2:GOTO 810 ELSE 790
  81. 810  IF I$="d"THEN Z$=" DOUBLE "ELSE Z$=" SINGLE "
  82. 820  CLS:IF I$="d"THEN GOSUB 430 ELSE GOSUB 560
  83. 830  LOCATE 1:PRINT Z$;"ELEMENT MOBILE or MARITIME WHIP"
  84. 840  '
  85. 850  LOCATE 11
  86. 860  INPUT "ENTER: Frequency of operation (1.8 - 30 MHz)........(MHz)";F
  87. 870  IF F<1.8 OR F>30 THEN GOSUB 190:GOTO 850
  88. 880  GOSUB 190
  89. 890  LOCATE 2,26:PRINT "Operating frequency........";USING U2$;F;
  90. 900  PRINT " MHz =";USING "#####.##";300/F;:PRINT " m."
  91. 910  '
  92. 920  LOCATE 11
  93. 930  PRINT" ENTER: Diameter of element H1...................("UM$;")";
  94. 940  INPUT DH1:DH1=DH1/UM
  95. 950  IF DH1=0 THEN GOSUB 190:GOTO 920
  96. 960  GOSUB 190
  97. 970  LOCATE 4,26:PRINT "Diameter of element H1.....";USING U1$;DH1*2.54;
  98. 980  PRINT " cm.  =";USING "####.##";DH1;:PRINT " in."
  99. 990  IF I$="s"THEN 1190
  100. 1000  '
  101. 1010  LOCATE 11
  102. 1020  PRINT" ENTER: Diameter of element H2...................("UM$;")";
  103. 1030  INPUT DH2:DH2=DH2/UM
  104. 1040  IF DH1=0 THEN GOSUB 190:GOTO 1010
  105. 1050  GOSUB 190:LOCATE 6,26
  106. 1060  LOCATE 6,26:PRINT "Diameter of element H2.....";USING U1$;DH2*2.54;
  107. 1070  PRINT " cm.  =";USING "####.##";DH2;:PRINT " in."
  108. 1080  '
  109. 1090  H=45  'max.elec.lgth in degrees
  110. 1100  LMAX=984*H/F/360*12  'max.length in inches
  111. 1110  LOCATE 11
  112. 1120  COLOR 0,7:PRINT " Maximum length H1+H2:";USING U1$;LMAX*2.54;
  113. 1130  PRINT " cm. =";USING U1$;LMAX;:PRINT " in. =";H;"elec.degrees "
  114. 1140  COLOR 7,0
  115. 1150  PRINT " ENTER: Your choice of total length H1+H2....(";UM$;")";:INPUT Z
  116. 1160  Z=Z/UM     'length in inches
  117. 1170  H=Z/12/984*F*360   'length in electrical degrees
  118. 1180  '
  119. 1190  '.....computation
  120. 1200  IF I$="s"THEN 1230
  121. 1210  IF I$="d"THEN 1900
  122. 1220  '
  123. 1230  '.....single element
  124. 1240  FOR Z=5 TO 45 STEP 5
  125. 1250  GOSUB 1780  'equations
  126. 1260   S(Z/5,1)=Z                    'length in electrical degrees
  127. 1270   S(Z/5,2)=H1*2.54              'length in centimetres
  128. 1280   S(Z/5,3)=H1                   'length in inches
  129. 1290   S(Z/5,4)=RR
  130. 1300   S(Z/5,5)=KM
  131. 1310   S(Z/5,6)=XL
  132. 1320   S(Z/5,7)=UH
  133. 1330  NEXT Z
  134. 1340  '
  135. 1350  '.....screen display
  136. 1360  LOCATE 10
  137. 1370  PRINT UL$;
  138. 1380  LOCATE CSRLIN-1,1:PRINT "ERR";:LOCATE ,30:PRINT"FN";:LOCATE ,54:PRINT "FN";:
  139. 1390  LOCATE ,68:PRINT "FN";:LOCATE ,(80):PRINT "OPTION";
  140. 1400  LOCATE CSRLIN-1,33:PRINT " TYPICAL VALUES "
  141. 1410  PRINT "CALLVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND Length H1 SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR";TAB(30)"CALL Radiation";
  142. 1420  PRINT TAB(42)"CALL  Antenna";TAB(54)"CALL   Antenna";TAB(68)"CALL  Loading";
  143. 1430  PRINT TAB(80)"CALL";
  144. 1440  PRINT "CALL degCALL     cm.   CALL     in.";TAB(30)"CALL Resistance";
  145. 1450  PRINT TAB(42)"CALL Impedance";TAB(54)"CALL  Reactance";TAB(68)"CALL   Coil";
  146. 1460  PRINT TAB(80)"CALL";
  147. 1470  FOR Z=1 TO 9:FOR Y=1 TO 7
  148. 1480  IF Y=1 THEN U$="CALL ##<UNK! {00F8}>"
  149. 1490  IF Y=2 THEN U$="CALL#######.##"
  150. 1500  IF Y=3 THEN U$=" CALL#######.##"
  151. 1510  IF Y=4 OR Y=5 THEN U$=" CALL#####.## -"
  152. 1520  IF Y=6 THEN U$=" CALL-j#####.## -"
  153. 1530  IF Y=7 THEN U$=" CALL####.## >H"
  154. 1540  PRINT USING U$;S(Z,Y);
  155. 1550  NEXT Y:PRINT " CALL";
  156. 1560  NEXT Z
  157. 1570  GOSUB 3360   'hard copy
  158. 1580  '
  159. 1590  '.....select an antenna
  160. 1600  LOCATE 23
  161. 1610  PRINT " ENTER: Your choice of length H1.....(";UM$;")";:INPUT L:L=L/UM
  162. 1620  Z=L/12/984*F*360  'length in degrees
  163. 1630  LOCATE 5,26:PRINT SPC(54);     'erase H1 length display
  164. 1640  VIEW PRINT 11 TO 24:CLS:VIEW PRINT:LOCATE 11
  165. 1650  GOSUB 1780        'solve equations
  166. 1660  Z1=Z:GOSUB 2680   'screen printout
  167. 1670  GOSUB 3360        'hard copy
  168. 1680  LOCATE 25,1:PRINT C$;:LOCATE 23:COLOR 0,7
  169. 1690  '
  170. 1700  PRINT " Do you want to try another?   (y/n) "
  171. 1710  COLOR 7,0
  172. 1720  Z$=INKEY$:IF Z$=""THEN 1720
  173. 1730  IF Z$="n"THEN GOSUB 190:GOTO 3000
  174. 1740  IF Z$="y"THEN GOSUB 190:GOTO 1590
  175. 1750  GOTO 1720
  176. 1760  END
  177. 1770  '
  178. 1780  '.....single element equations
  179. 1790  I=1                            '1 ampere base current
  180. 1800  H1=984*Z/(F*360)*12            'length of H1 in inches
  181. 1810  A=Z/2*I                        'area in degree-amperes
  182. 1820  K=Z^2/(312*A^2)                'K=.0128
  183. 1830  RR=K*A^2                       'radiation resistance in ohms
  184. 1840  KM=60*(LOG(2*H1/(DH1/2))-1)    'mean characteristic impedance
  185. 1850  DR=Z*PI/180                    'elec. length in radians
  186. 1860  XL=KM*(1/TAN(DR))              'inductive reactance required
  187. 1870  UH=XL/(2*PI*F)                 'inductor value in >H
  188. 1880  RETURN
  189. 1890  '
  190. 1900  '.....double element
  191. 1910  VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10
  192. 1920  PRINT UL$;
  193. 1930  LOCATE CSRLIN-1,1:PRINT "ERR";:LOCATE ,30:PRINT"FN";:LOCATE ,59:PRINT "FN";:
  194. 1940  LOCATE ,68:PRINT "FN";:LOCATE ,(80):PRINT "OPTION";
  195. 1950  LOCATE CSRLIN-1,33:PRINT " TYPICAL VALUES "
  196. 1960  PRINT "CALLVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND Length H1 SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR";TAB(30);
  197. 1970  PRINT "CALLVARPTRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND Length H2 SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR";
  198. 1980  PRINT TAB(59);"CALLRadiat'nCALL  Loading";
  199. 1990  PRINT TAB(80)"CALL";
  200. 2000  PRINT "CALL   deg  CALL   cm.   CALL   in.";TAB(30);
  201. 2010  PRINT "CALL   deg  CALL   cm.   CALL   in.";
  202. 2020  PRINT TAB(59)"CALL Resis.";TAB(68)"CALL   Coil";
  203. 2030  PRINT TAB(80)"CALL";
  204. 2040  FOR Z=1 TO 9
  205. 2050  GOSUB 2510   'solve equations
  206. 2060   D(Z,1)=H1                'H1 in degrees
  207. 2070   D(Z,3)=H1N               'H1 in inches
  208. 2080   D(Z,2)=H1N*2.54          'H1 in cm.
  209. 2090   D(Z,4)=H2                'H2 in degrees
  210. 2100   D(Z,6)=H2N               'H2 in inches
  211. 2110   D(Z,5)=H2N*2.54          'H2 in cm.
  212. 2120   D(Z,7)=RR
  213. 2130   D(Z,8)=UH
  214. 2140  NEXT Z
  215. 2150  '
  216. 2160  '.....screen display
  217. 2170  LOCATE 9,26:PRINT "Sum of lengths H1 + H2.....";USING U1$;(H1N+H2N)*2.54;
  218. 2180  PRINT " cm.  =";USING "####.##";H1N+H2N;:PRINT " in."
  219. 2190  LOCATE 13
  220. 2200  FOR Z=1 TO 9:FOR Y=1 TO 8
  221. 2210  IF Y=1 OR Y=4 THEN U$="CALL###.##<UNK! {00F8}> "
  222. 2220  IF Y=2 OR Y=3 OR Y=5 OR Y=6 THEN U$="CALL#####.## "
  223. 2230  IF Y=7 THEN U$="CALL##.## - "
  224. 2240  IF Y=8 THEN U$="CALL####.## >h "
  225. 2250  PRINT USING U$;D(Z,Y);
  226. 2260  NEXT Y:PRINT "CALL";
  227. 2270  NEXT Z
  228. 2280  GOSUB 3360
  229. 2290  '
  230. 2300  '.....select an antenna
  231. 2310  LOCATE 23
  232. 2320  PRINT " ENTER: Your choice of length H1.....(";UM$;")";:INPUT Z:Z=Z/UM
  233. 2330  H1=Z/12/984*F*360     'length in electrical degrees
  234. 2340  LOCATE 5,26:PRINT SPC(54);     'erase H1 length display
  235. 2350  LOCATE 7,26:PRINT SPC(54);     'erase H2 length display
  236. 2360  LOCATE 9,26:PRINT SPC(54);     'erase H1+h2 length display
  237. 2370  VIEW PRINT 11 TO 24:CLS:VIEW PRINT:LOCATE 11
  238. 2380  GOSUB 2540          'solve equations
  239. 2390  Z1=H1:Z2=H2:GOSUB 2680    'screen printout
  240. 2400  GOSUB 3360                'hard copy
  241. 2410  LOCATE 25,1:PRINT C$;:LOCATE 23:COLOR 0,7
  242. 2420  '
  243. 2430  PRINT " Do you want to try another?   (y/n) "
  244. 2440  COLOR 7,0
  245. 2450  Z$=INKEY$:IF Z$=""THEN 2450
  246. 2460  IF Z$="n"THEN GOSUB 190:GOTO 3000
  247. 2470  IF Z$="y"THEN GOSUB 190:GOTO 2300
  248. 2480  GOTO 1720
  249. 2490  END
  250. 2500  '
  251. 2510  '.....double element equations
  252. 2520  H1=H*Z/10                           'H1 electrical lengths in degrees
  253. 2530  '
  254. 2540  H2=H-H1                             'H2 electrical lengths in degrees
  255. 2550  H1N=984*H1/(F*360)*12               'H1 length in inches
  256. 2560  H2N=984*H2/(F*360)*12               'H2 length in inches
  257. 2570  DR1=H1*PI/180                       'H1 elec. length in radians
  258. 2580  DR2=H2*PI/180                       'H2 elec. length in radians
  259. 2590  A=0.5*(H1*(1+COS(DR1))+H2*COS(DR1))  'area in degree-amperes
  260. 2600  K=0.0128                             'K=.0128
  261. 2610  RR=K*A^2                            'radiation resistance in ohms
  262. 2620  KM1=60*(LOG(2*H1N/(DH1/2))-1)       'H1 mean characteristic impedance
  263. 2630  KM2=60*(LOG(2*H2N/(DH2/2))-1)       'H2 mean characteristic impedance
  264. 2640  XL=KM2/TAN(DR2)-KM1*TAN(DR1)        'inductive reactance required
  265. 2650  UH=XL/(2*PI*F)                      'inductor value in >H
  266. 2660  RETURN
  267. 2670  '
  268. 2680  '.....specification printout
  269. 2690  VIEW PRINT 10 TO 24:CLS:VIEW PRINT:LOCATE 10
  270. 2700  PRINT UL$;
  271. 2710  PRINT " Length H1 (electrical degrees)....H1=";USING U2$;Z1;:PRINT "<UNK! {00F8}>"
  272. 2720  IF I$="s"THEN 2740
  273. 2730  PRINT " Length H2 (electrical degrees)....H2=";USING U2$;Z2;:PRINT "<UNK! {00F8}>"
  274. 2740  PRINT " Degree-ampere area.................A=";USING U3$;A
  275. 2750  PRINT " K constant.........................K=";USING U3$;K
  276. 2760  PRINT " Radiation resistance..............RR=";USING U2$;RR;:PRINT " -"
  277. 2770  IF I$="s"THEN 2810
  278. 2780  PRINT " H1 characteristic impedance......Km1=";USING U2$;KM1;:PRINT " -"
  279. 2790  PRINT " H2 characteristic impedance......Km2=";USING U2$;KM2;:PRINT " -"
  280. 2800  GOTO 2820
  281. 2810  PRINT " H1 characteristic impedance.......Km=";USING U2$;KM;:PRINT " -"
  282. 2820  PRINT " Capacitive reactance..............XL=";USING U2$;XL;:PRINT " -"
  283. 2830  PRINT " Loading coil inductance.............=";USING U2$;UH;:PRINT " >H"
  284. 2840  RC1=XL/50:RC2=XL/300:RC3=XL/450
  285. 2850  PRINT " Coil loss resistance: Q50 coil....RC=";USING U2$;RC1;:PRINT " -"
  286. 2860  PRINT "                     : Q300 coil...RC=";USING U2$;RC2;:PRINT " -"
  287. 2870  PRINT "                     : Q450 coil...RC=";USING U2$;RC3;:PRINT " -"
  288. 2880  IF I$="d"THEN 2920
  289. 2890  LOCATE 5,26:PRINT "Length of element H1.......";USING U1$;H1*2.54;
  290. 2900  PRINT " cm.  =";USING "####.##";H1;:PRINT " in."
  291. 2910  GOTO 2980
  292. 2920  LOCATE 5,26:PRINT "Length of element H1.......";USING U1$;H1N*2.54;
  293. 2930  PRINT " cm.  =";USING "####.##";H1N;:PRINT " in."
  294. 2940  LOCATE 7,26:PRINT "Length of element H2.......";USING U1$;H2N*2.54;
  295. 2950  PRINT " cm.  =";USING "####.##";H2N;:PRINT " in."
  296. 2960  LOCATE 9,26:PRINT "Sum of lengths H1 + H2.....";USING U1$;(H1N+H2N)*2.54;
  297. 2970  PRINT " cm.  =";USING "####.##";H1N+H2N;:PRINT " in."
  298. 2980  RETURN
  299. 2990  '
  300. 3000  '.....end
  301. 3010  COLOR 0,7
  302. 3020  PRINT " Do you want to design this coil?   (y/n) "
  303. 3030  COLOR 7,0
  304. 3040  Z$=INKEY$:IF Z$=""THEN 3040
  305. 3050  IF Z$="n"THEN GOSUB 190:GOTO 3090
  306. 3060  IF Z$="y"THEN CLS:U=UH:CHAIN"coildsgn"
  307. 3070  GOTO 3040
  308. 3080  GOSUB 3360
  309. 3090  GOTO 230   'start
  310. 3100  END
  311. 3110  '
  312. 3120  '.....preface
  313. 3130  TB=7
  314. 3140  PRINT TAB(TB);
  315. 3150  PRINT "This program purposely omits end effect calculation to ensure that"
  316. 3160  PRINT TAB(TB);
  317. 3170  PRINT "an antenna is electrically overlength. This is so that resonance at"
  318. 3180  PRINT TAB(TB);
  319. 3190  PRINT "the design frequency can be obtained easily by removing a turn or"
  320. 3200  PRINT TAB(TB);
  321. 3210  PRINT "two from the loading coil."
  322. 3220  PRINT
  323. 3230  PRINT TAB(TB);
  324. 3240  PRINT "Optimum loading coil Q is attained when the loading coil diameter"
  325. 3250  PRINT TAB(TB);
  326. 3260  PRINT "is at or near twice its length. Diameter of loading coil conductor"
  327. 3270  PRINT TAB(TB);
  328. 3280  PRINT "(wire or tubing) should be as large as practicable. Loading coil"
  329. 3290  PRINT TAB(TB);
  330. 3300  PRINT "turns should be removed, NOT shorted, for tuning purposes."
  331. 3310  PRINT
  332. 3320  PRINT TAB(TB);
  333. 3330  PRINT "(Ref. THE ARRL ANTENNA BOOK, 17th Edition, pages 16-5 TO 16-11)"
  334. 3340  RETURN
  335. 3350  '
  336. 3360  'HARDCOPY
  337. 3370  GOSUB 3480:LOCATE 25,2:COLOR 14,6
  338. 3380  PRINT " Press 1 to print screen, 2 to print screen & ";
  339. 3390  PRINT "advance paper, or 3 to continue.";:COLOR 7,0
  340. 3400  Z$=INKEY$:IF Z$="3"THEN GOSUB 3480:RETURN
  341. 3410  IF Z$="1"OR Z$="2"THEN GOSUB 3480:GOTO 3430
  342. 3420  GOTO 3400
  343. 3430  FOR QX=1 TO 24:FOR QY=1 TO 80
  344. 3440  LPRINT CHR$(SCREEN(QX,QY));
  345. 3450  NEXT QY:NEXT QX
  346. 3460  IF Z$="2"THEN LPRINT CHR$(12)
  347. 3470  GOTO 3370
  348. 3480  LOCATE 25,1:PRINT STRING$(80,32);:RETURN
  349.